#ifndef _TPHAL_HEADER_
#define _TPHAL_HEADER_
#define TOUCHAPD_INPUT_DEV "/dev/input/event0"
#define TOUCHAPD_MAXPOINTNUM 1
#define TOUCHAPD_BITLONG 32

/* brief touchpad rotate enum */
typedef enum {
    HI_TOUCHPAD_ROTATE_NONE = 0, /* normal, no rotate */
    HI_TOUCHPAD_ROTATE_90,       /* 90 degree rotate */
    HI_TOUCHPAD_ROTATE_180,
    HI_TOUCHPAD_ROTATE_270,
    HI_TOUCHPAD_ROTATE_BUTT
} HI_TOUCHPAD_Rotate;


#define HIGO_TOUCH_FLIP_Y

/* touchpad touch info */
typedef struct {
    HI_S32 id;        /* input id info, one finger or two fingers */
    HI_S32 x;         /* x coordinate absolute */
    HI_S32 y;         /* y coordinate absolute */
    HI_U32 pressure;  /* is press on screen: 0, 1 */
    HI_U32 timeStamp; /* time stamp */
} HI_TOUCHPAD_InputInfo;

/* multi touch info */
typedef struct {
    HI_TOUCHPAD_InputInfo info[TOUCHAPD_MAXPOINTNUM];
} TOUCHPAD_MtSampleInfo;

typedef struct {
    HI_S32 touchFilled[TOUCHAPD_MAXPOINTNUM]; /* MARK filled flag, array index is id */
    HI_S32 x[TOUCHAPD_MAXPOINTNUM];
    HI_S32 y[TOUCHAPD_MAXPOINTNUM];
    HI_S32 touchPressure[TOUCHAPD_MAXPOINTNUM];
    HI_S32 touchSlot; /* represent input id */
} TOUCHPAD_MtInputInfo;

HI_S32 HI_GV_TOUCH_Register();
#endif
